"""
1、python 语言的特性？
python是一门解释型语言 简单清晰 开源免费 跨平台 有大量第三方库辅助开发
支持面向对象与垃圾回收 方便与其他编程语言相互调用
python在数据采集 人工智能 web后台开发 自动化运维 测试等方向应用广泛。

2、python 原生（基本）数据类型有哪些？
# 简单数据类型
整数型 int
a = 10
浮点数 float
a = 4.3
字符串 str
a = "hello world"
布尔类型 bool
True  False
空值 None
a = None
# 复杂数据类型
列表 list  有序 可变的集合 用方括号表示 []
l = [[], 1, a, 'abc' ]
元组 tuple 有序 不可变的集合 用圆括号表示()
t = (x for x in random.randint(2,10))
字典 dict 键值对的集合 用大括号表示{}
d = {'name':'张三',
'age':24
}
集合 set 无序 不重复的元素集合，用大括号表示{}
s = {10, 20, 30}

3、哪些是可变数据类型 哪些是不可变数据类型
可变类型：
列表 list []
字典 dict {}
集合 set {}
不可变数据类型：
整数型 int
浮点数 float
布尔类型 bool True False
字符串 str
空值 None

4、不可变数据类型和可变数据类型的差别
可变数据类型是引用的同一个对象 可以对对象内容进行修改
不可变数据类型 在赋值或传参时 会赋值一个新对象 与原始对象内存不一致

5、常用数据结构  各自特点
线性结构 按索引访问 访问速度快 插入和删除不易  列表 元组
栈 后进先出
队列 先进先出
非线性结构 集合 字典
集合 元素不重复 多用于去除重复
字典 键值格式储存  查询效率高  增加存储空间

6、什么是面向对象


"""
# 目录
# 1. Python语言的特性？	1
# python 是一门解释性语言 简单明了 免费开源 可跨平台 拥有大量第三方库辅助开发
# 支持面向对象和自动垃圾回收 方便和其他编程语言相互调用

# 2. python基础数据类型（原生数据类型）
# 简单数据类型：int整数  float小数（浮点数） str字符串  bool布尔类型 True False  None空值
# 复杂数据类型：
# list 列表有序 可变的集合 []
# tuple 元组 有序  不可变的集合 ()
# dict 字典 键值对的集合 {}
# set  集合  无序 可变 不重复的元素集合  {}

# 3. 哪些是可变类型，哪些是不可变？	1
# 简单数据类型和元组不可变  列表  字典  集合  可变

# 4. 不可变类型和可变类型的差别：
# 可变数据类型： 引用得是同一个对象 可以对内容进行修改
# 不可变数据类型： 对象在创建后不可更改 对其赋值或传递参数时 会复制一个新的对象  与原始对象内存不一致

# 5. 说说常用的数据结构有哪些？各自的特点？
# 线性数据结构 列表 元组  按索引访问  访问速度快  但插入和删除不易
# 栈：后进先出
# 队列：先进先出
# 非线性数据结构
# 字典 键值对的集合 键值对式储存 查询效率高 增加存储空间
# 集合 元素不重复  一般用于去除重复

# 6. 什么是面向对象？谈谈详细认知	2
# 一切皆对象 将现实世界中的问题抽象为软件系统中的对象 通过对象之间的交互来实现系统功能
# 优点：1、使程序更加容易扩展和修改 使开发效率变得更高
# 2、基于面向对象的程序可以使别人更加容易理解代码逻辑
# 三大特性：
# 封装：将数据以及数据的（操作）封装到一个类
# 继承：子类通过继承父类 可以获得父类的功能实现
# 多态：通过重载 （父子类）和重写 （同一个类内）实现方法的多样性
# python支持多继承  可以通过mro 方法检索顺序  决定了去哪里查找对应的实现
# 一个类通常由实例属性 实例方法 类属性 类方法 静态方法 五个内容构成
# 访问权限：公开：类内外均可访问 私有的：只能类内访问 保护的：类内以及子类可以访问

# 7. 什么是鸭子类型?	3
# 不关注类型 只关注是否有对应的行为方法
# 只要有对应得行为实现 就可以认为他是某一类型

# 8. 说一说你常用的魔法方法？	3
# 析构 初始化 转字符串 构造
# def  init   str   new
# 内存销毁前得清理  初始化self实例  将实例字符串表示  通过父类得构造函数来创建实例

# 9. 谈一谈你对python动态性的理解？是否知道猴子补丁？	4
# 动态性指的是在运行过程中给类或者对象绑定添加属性
# 实例属性 类属性 静态方法直接添加
# 实例方法 类方法 需要通过types.MethodType 添加
# 猴子补丁：对象已经定义之后，运行时再去修改它们的行为

# 10. 谈一谈python的异常处理方式？	4
# 11. 常用的字符串，列表，元组，字典，集合处理方法？	4
# a = 'dakdlhADSGHSY'
# upper = a.upper()
# print(upper)
# lower = a.lower()
# print(lower)
# 12.简单说一下如何实现序列化？有什么不同？	4
# 13.如何漫游一个文件目录？有哪两种方式？	5
# 2. 使用os.walk   返回生成器	5
# 14.谈谈深浅拷贝	5
# 1. 等号赋值：直接使用原始地址，修改一个另外一个直接变化	5
# 16. 谈谈对闭包的理解？	5
# 17.谈谈对装饰器的理解？	6
# 18.可迭代、迭代器、生成器的区别？	6
# 19.正则模块使用经验？	6
# 22. Python的内存管理(垃圾回收)	7
# 23. 什么是PEP8 规范	7
# 4个空格缩进，	7
# 25. *arg和**kwarg作用	8
# 26. is和==的区别	8
# 27. 文件读写IO	8
# 28. 元类（MetaClass）	9
# 29. 至少列举10个常用模块都有那些？	9
# 16、 Tkinter 用户界面模块	10
# 30. json序列化时，可以处理的数据类型有哪些？如何定制支持datetime类型？	10
# 31. json序列化时，默认遇到中文会转换成unicode，如果想要保留中文怎么办？	12
# 32. 对比进程与线程	12
# 33. Async与await 异步函数	13
# 34. 网络编程常见通信协议	13
# 35. 如何安装第三方Python模块	14

